
//1、类的成员变量与方法、构造方法 在程序中经常要对时间进行操作但是并没有时间类型的数据。那么
//我们可以自己实现一个时间类来满足程序中的需要。 定义名为MyTime的类其中应有三个整型成员时
//hour分minute秒second为了保证数据的安全性这三个成员变量应声明为私有。 为MyTime类定义构造
//方法以方便创建对象时初始化成员变量。 再定义diaplay方法用于将时间信息打印出来。 为MyTime类
//添加以下方法 addSecond(int sec)、 addMinute(int min) 、addHour(int hou) 、
//subSecond(int sec)、 subMinute(int min) 、subHour(int hou) 分别对时、分、秒进行加减运算。

class MyTime {
    private int hour;
    private int minute;
    private int second;
    public MyTime() {
    }

    public MyTime(int hour){
        if(hour < 0 || hour >= 24){
            return;
        }
        this.hour = hour;
    }

    public MyTime(int hour, int minute){
        this(hour);
        if (minute < 0 || second >= 60){
            return;
        }
        this.minute = minute;
    }

    public MyTime(int hour, int minute, int second){
        this(hour, minute);
        if (second < 0 || second >= 60){
            return;
        }
        this.second = second;
    }

    public void addSecond(int sec){
        int addHour = sec / 3600;
        int addMinute = sec % 3600 / 60;
        int addSecond = sec % 60;

        second += addSecond;
        if (second >= 60){
            second -= 60;
            minute++;
        }
        minute += addMinute;
        if (minute >= 60){
            minute -= 60;
            hour++;
        }
        hour += addHour;
        if (hour >= 24){
            hour -= 24;
        }
    }

    public void addMinute(int min){
        addSecond(min * 60);
    }

    public void addHour(int hou){
        addSecond(hou * 3600);
    }

    public void subSecond(int sec){
        int subHour = sec / 3600;
        int subMinute = sec % 3600 /60;
        int subSecond = sec % 60;

        second -= subSecond;
        if (second < 0){
            second += 60;
            minute--;
        }
        minute -= subMinute;
        if (minute < 0){
            minute += 60;
            hour--;
        }
        hour -= subHour;
        if (hour <0){
            hour += 24;
        }
    }

    public void subMinute(int min){
        subSecond(min * 60);
    }

    public void subHour(int hou){
        subSecond(hou * 3600);
    }

    public void disaplay(){
        System.out.println(hour + ":" + minute + ":" + second);
    }
}

public class Timer_01 {
    //    自定义名为MyTime的类，其中应有三个整形成员：时（hour），分（minute），秒（second）
    public static void main(String[] args){
        MyTime mt1 = new MyTime(13, 14, 50);
        mt1.disaplay();
        mt1.subMinute(60);
        mt1.subSecond(3600);
        mt1.disaplay();
    }
}